package com.syh.jn.scm.domain.operation.entity.system;

import cn.redscarf.commons.util.bean.ExtBeanUtils;
import cn.redscarf.commons.util.other.ExtAssert;
import cn.redscarf.commons.spring.SpringContextUtils;
import cn.redscarf.commons.util.validator.ValidationUtils;
import cn.redscarf.commons.wrapper.Restrictions;
import cn.redscarf.commons.wrapper.Wrapper;
import com.syh.core.ddd.domain.AbstractSimpleAggregate;
import com.syh.jn.scm.domain.operation.entity.supplier.OperaSupplier;
import com.syh.jn.scm.domain.operation.repository.supplier.OperaSupplierReadRepository;
import com.syh.jn.scm.domain.supplier.repository.system.SupplierAccountReadRepository;
import com.syh.jn.scm.dto.supplier.system.supplierAccount.SupplierAccountMto;
import com.syh.jn.scm.dto.supplier.system.supplierAccount.SupplierAccountSto;
import com.syh.jn.scm.exception.BusinessException;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 终端账号管理
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class TerminalAccount extends AbstractSimpleAggregate<Long> {
  /**
   * 登录账号
   */
  private String loginAccount;
  /**
   * 登录密码
   */
  private String loginPassword;
  /**
   * 手机账号id
   */
  private Long loginPhoneId;
  /**
   * 数据归属公司ID
   */
  private Long businessEntityId;
  /**
   * 姓名
   */
  private String name;
  /**
   * 电话
   */
  private String telephone;
  /**
   * 终端系统类型
   */
  private String terminalType;
  /**
   * 角色id
   */
  private Long roleId;
  /**
   * 是否管理员 1:是
   */
  private Short admin;
  /**
   * 使用情况:-1冻结, 1启用
   */
  private Short enable;

  public void bindingLoginPhone(Long phoneId) {
    this.loginPhoneId = phoneId;
  }

  public void untyingLoginPhone() {
    this.loginPhoneId = null;
  }

}
